// 导入创建Vue实例的API
import { createApp } from 'vue';
// 导入数据状态管理库提供的API
import { createPinia } from 'pinia';
// 导入elementPlus组件的图标
import * as ElementPlusIconsVue from '@element-plus/icons-vue';
// 导入视图主入口组件
import App from './App.vue';
// 导入路由配置
import router from './router';
// 数据状态管理的配置文件
import { usePermissStore } from './store/permiss';
// 导入elementPlus样式文件
import 'element-plus/dist/index.css';
// 图标样式文件
import './assets/css/icon.css';
// 创建Vue程序
const app = createApp(App);
// 使用pinia做数据状态管理
app.use(createPinia());
// 使用路由做页面导航
app.use(router);

// 注册elementplus图标
for (const [key, component] of Object.entries(ElementPlusIconsVue)) {
    app.component(key, component);
}
// 自定义权限指令
const permiss = usePermissStore();
app.directive('permiss', {
    mounted(el, binding) {
        if (!permiss.key.includes(String(binding.value))) {
            el['hidden'] = true;
        }
    },
});
// 挂载程序的模板
app.mount('#app');


